 Garmin:
- 9600 
- pps 100
- NMEA :
$GPRMC $GPGGA $GPGLL

Linux PPS   .

 -   pps.

 pps  NMEA  gpsd.
     ,
  5-20    .

gpsd  NMEA  
   127.127.28.0.
gpsd  pps  
   127.127.28.1
  127.127.22.0.

  ,      pps !

 < 1 ,   30    .
   -   offset  jitter.
      1 .

    
  127.127.20.0
  
  127.127.20.0  127.127.22.0.

       /etc/ntp.conf.
     
/etc/init.d/S47gpsd stop

nano /etc/ntp.conf
ldattach PPS /dev/ttyS34
ln -s /dev/ttyS34 /dev/gps0
ln -s /dev/pps0 /dev/gpspps0
/etc/init.d/S49ntp restart
cat /var/log/ntp.log

   NTP  PPS:

----------------------------------------------------------------------------
-- 
# cat /var/log/ntp.log

14 Mar 15:15:35 ntpd[830]: 0.0.0.0 c016 06 restart
14 Mar 15:15:35 ntpd[830]: 0.0.0.0 c012 02 freq_set ntpd 0.000 PPM
14 Mar 15:15:35 ntpd[830]: 0.0.0.0 c011 01 freq_not_set
14 Mar 15:15:35 ntpd[830]: 0.0.0.0 c41c 0c clock_step +3.331473 s
14 Mar 15:15:39 ntpd[830]: 0.0.0.0 c414 04 freq_mode
14 Mar 15:15:39 ntpd[830]: 0.0.0.0 c418 08 no_sys_peer
14 Mar 15:17:47 ntpd[830]: 0.0.0.0 c428 08 no_sys_peer

----------------------------------------------------------------------------
--  DCD  
# /1tm/tools/test_dcd

test NMEA /dev/ttyS34
0 - $GPRMC,184958,A,4411.7876,N,03853.5114,E,000.0,000.0,130313,005.8,E*73
$GPGGA,184958,4411.7876,N,03
1 - 853.5114,E,2,05,1.5,19.7,M,25.4,M,,*77
$GPGLL,4411.7876,N,03853.5114,E,184958,A*21
$GPRMC,184959,A
2 - ,4411.7876,N,03853.5114,E,000.0,000.0,130313,005.8,E*72
$GPGGA,184959,4411.7876,N,03853.5114,E,2,05
test PPS DCD -----------------
0 -
1 - pps DCD
2 -
3 -
4 -
5 -
6 -
7 -
8 -
9 -
10 -
11 - pps DCD

----------------------------------------------------------------------------
# ls /dev
...
pps0
...
----------------------------------------------------------------------------
--
# lsmod
Module                  Size  Used by    Tainted: G
pps_ldisc               1385  3
pps_core                5039  3 pps_ldisc
icpdas_8250            79905  0
8250_linpac             2846  0 [permanent]
slot                   32477  0
ipic                    1972  2 icpdas_8250,slot
----------------------------------------------------------------------------
-- 
# setserial -bg /dev/ttyS*
# cat /dev/ttyS34
# stty -a -F /dev/ttyS34
# cat /proc/tty/driver/serial
# cat /proc/tty/driver/serial8250_icpdas
# setserial -v /dev/ttyS34
/dev/ttyS34, UART: 16550A, Port: 0x7038, IRQ: 15, Flags: low_latency

----------------------------------------------------------------------------
-- pps
# ls /sys/class/pps/pps0/
assert     clear      dev        echo       mode       name       path       subsystem  uevent
----------------------------------------------------------------------------
--   pps -  
# cat /sys/class/pps/pps0/assert
1363276344.011310214#2206
  -   
# cat /sys/class/pps/pps0/clear
0.000000000#0

1363275068.041991602#930

----------------------------------------------------------------------------
  PPS API
# /1tm/tools/ppstest /dev/pps0
trying PPS source "/dev/pps0"
found PPS source "/dev/pps0"
ok, found 1 source(s), now start fetching data...
source 0 - assert 1363276345.011309219, sequence: 2207 - clear  1363275068.041991602, sequence: 930
source 0 - assert 1363276346.011307782, sequence: 2208 - clear  1363275068.041991602, sequence: 930
source 0 - assert 1363276347.011304269, sequence: 2209 - clear  1363275068.041991602, sequence: 930

----------------------------------------------------------------------------
-- 
# cat /var/log/messages
Mar 14 15:15:34 lp_lin_rtpp kern.warn kernel: [   11.349493] gpsd used greatest stack depth: 5956 bytes left
Mar 14 15:15:34 lp_lin_rtpp kern.warn kernel: [   11.822638] ntpdate used greatest stack depth: 5660 bytes left
Mar 14 15:15:34 lp_lin_rtpp daemon.notice ntpd[829]: ntpd 4.2.6p5@1.2349 Thu Mar 14 07:20:04 UTC 2013 (1)
Mar 14 15:15:34 lp_lin_rtpp daemon.notice ntpd[830]: proto: precision = 1.796 usec
Mar 14 15:15:34 lp_lin_rtpp kern.info kernel: [   11.950216] pps_core: LinuxPPS API ver. 1 registered
Mar 14 15:15:34 lp_lin_rtpp kern.info kernel: [   11.950336] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
Mar 14 15:15:34 lp_lin_rtpp kern.info kernel: [   11.958427] pps_ldisc: PPS line discipline registered
Mar 14 15:15:34 lp_lin_rtpp kern.info kernel: [   11.964130] pps pps0: new PPS source serial8250_icpdas34
Mar 14 15:15:34 lp_lin_rtpp kern.info kernel: [   11.964289] pps pps0: source "/dev/ttyS34" added
Mar 14 15:15:35 lp_lin_rtpp daemon.debug ntpd[830]: ntp_io: estimated max descriptors: 1024, initial socket boundary: 16
Mar 14 15:15:35 lp_lin_rtpp daemon.info ntpd[830]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
Mar 14 15:15:35 lp_lin_rtpp daemon.info ntpd[830]: Listen normally on 1 lo 127.0.0.1 UDP 123
Mar 14 15:15:35 lp_lin_rtpp daemon.info ntpd[830]: Listen normally on 2 eth0 192.168.1.21 UDP 123
Mar 14 15:15:35 lp_lin_rtpp daemon.info ntpd[830]: Listen normally on 3 eth1 192.168.0.21 UDP 123
Mar 14 15:15:35 lp_lin_rtpp daemon.info ntpd[830]: peers refreshed
Mar 14 15:15:35 lp_lin_rtpp daemon.info ntpd[830]: Listening on routing socket on fd #20 for interface updates
Mar 14 15:15:35 lp_lin_rtpp daemon.notice ntpd[830]: logging to file /var/log/ntp.log

----------------------------------------------------------------------------

----------------------------------------------------------------------------
-- ntpq -p      
# /1tm/tools/test_ntpq 300

  
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
xSHM(0)          .GPS.            2 l    6   16  377    0.000   68.686  12.630
 PPS(0)          .PPS0.           1 l    -   16    0    0.000    0.000   0.000
*SHM(1)          .PPS.            1 l    8   16  377    0.000   10.397   1.587

 
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
xSHM(0)          .GPS.            2 l    6   16  377    0.000   45.671  11.507
xPPS(0)          .PPS0.           1 l    6   16  377    0.000    7.960   3.756
*SHM(1)          .PPS.            1 l    8   16  377    0.000    8.139   3.856

 
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
xSHM(0)          .GPS.            0 l    7   16  377    0.000   58.780  10.485
xPPS(0)          .PPS0.           0 l    6   16  377    0.000    1.209   0.915
*SHM(1)          .PPS.            0 l    5   16  377    0.000    1.199   0.904


     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
xSHM(0)          .GPS.            0 l   13   16  377    0.000   53.593   9.177
xPPS(0)          .PPS0.           0 l   12   16  377    0.000    0.671   0.230
*SHM(1)          .PPS.            0 l   11   16  377    0.000    0.672   0.227

  
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
xSHM(0)          .GPS.            0 l   12   16  377    0.000   63.876   9.503
xPPS(0)          .PPS0.           0 l   11   16  377    0.000    0.051   0.002
*SHM(1)          .PPS.            0 l   10   16  377    0.000    0.050   0.002

----------------------------------------------------------------------------
--   ntp
# ntpdate -d localhost

14 Mar 12:09:28 ntpdate[1438]: ntpdate 4.2.6p5@1.2349 Thu Mar 14 07:20:06 UTC 2013 (1)
Looking for host localhost and service ntp
host found : localhost
transmit(127.0.0.1)
receive(127.0.0.1)
transmit(127.0.0.1)
receive(127.0.0.1)
transmit(127.0.0.1)
receive(127.0.0.1)
transmit(127.0.0.1)
receive(127.0.0.1)
server 127.0.0.1, port 123
stratum 2, precision -19, leap 00, trust 000
refid [127.0.0.1], delay 0.02577, dispersion 0.00000
transmitted 4, in filter 4
reference time:    d4ec3c7a.07f77d51  Thu, Mar 14 2013 12:09:30.031
originate timestamp: d4ec3c7e.cce7cb8f  Thu, Mar 14 2013 12:09:34.800
transmit timestamp:  d4ec3c7e.ccc53fc3  Thu, Mar 14 2013 12:09:34.799
filter delay:  0.02589  0.02580  0.02577  0.02589
         0.00000  0.00000  0.00000  0.00000
filter offset: -0.00001 -0.00001 -0.00003 -0.00009
         0.000000 0.000000 0.000000 0.000000
delay 0.02577, dispersion 0.00000
offset -0.000032

14 Mar 12:09:34 ntpdate[1438]: adjust time server 127.0.0.1 offset -0.000032 sec

# ntpdate localhost
----------------------------------------------------------------------------
